package com.bootdo.stock.service;

import com.bootdo.stock.domain.StockDO;

import java.util.List;
import java.util.Map;

/**
 * 库存表

 * @author clq
 * @date 2018-05-14 18:10:50
 */
public interface StockService {
	
	List<StockDO> list(Map<String, Object> map);

	List<StockDO> listP(Map<String, Object> map);
	
	int count(Map<String, Object> map);

	int countP(Map<String, Object> map);
	
	/**
	 * 新增库存记录 
	 * @param goodsId
	 * @return -1:商品id已存在 0:新增失败 1:新增成功
	 */
	int save(Long goodsId);
	
	/**
	 * 更新库存
	 * @param goodsId  商品id
	 * @param quNum  正品数量  加：+（正数）   减：-（负数）
	 * @param outNum		可出库数量  加：+（正数）   减：-（负数）
	 * @param reNum	退货数量	  加：+（正数）   减：-（负数）
	 * @param badNum		残次品数量  加：+（正数）   减：-（负数）
	 * @return
	 */
	int update(Long goodsId,Integer quNum,Integer outNum,Integer reNum,Integer badNum);
	
	/**
	 * 删除库存记录 
	 * @param goodsId
	 * @return 0:商品id不存在 1:删除成功
	 */
	int remove(Long goodsId);
	
	/**
	 * 根据商品id获取库存信息
	 * @param goodsId
	 * @return
	 */
	StockDO getStockByGsId(Long goodsId);
	
}
